package com.ssy.lingxi.member.merchant.model.vo.maintenance.response;

import com.ssy.lingxi.member.merchant.api.handler.annotation.PhoneAnno;
import com.ssy.lingxi.member.merchant.model.vo.basic.request.AreaCodeVO;
import lombok.Data;

import javax.persistence.Column;
import javax.validation.Valid;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 管理平台模糊分页查询会员信息时返回的VO
 * <p>平台后台 -> 平台会员管理 -> 会员维护</p>
 * @author 万宁
 * @version 2.0.0
 * @date 2020-07-07
 */
@Data
public class PlatformPageQueryMemberVO implements Serializable {
    private static final long serialVersionUID = 9086286118752114625L;

    /**
     * 下级会员id
     */
    private Long memberId;

    /**
     * 上级会员id
     */
    private Long upperMemberId;

    /**
     * 会员审核内容Id（前端页面不展示，但在调用其他接口时需要传递此参数值）
     */
    private Long validateId;

    /**
     * 下级角色Id
     */
    private Long roleId;

    /**
     * 上级角色Id
     */
    private Long upperRoleId;

    /**
     * 会员名称
     */
    private String name;

    /**
     * 会员类型Id
     */
    private Integer memberTypeId;

    /**
     * 会员类型
     */
    private String memberTypeName;

    /**
     * 会员角色
     */
    private String roleName;

    /**
     * 注册来源枚举：1-Web企业商城，2-H5企业商城，3-Web渠道商城，4-H5渠道商城，5-平台代录入，6-商户代录入，7-渠道代录入
     */
    private Integer source;

    /**
     * 注册来源
     */
    private String sourceName;

    /**
     * 注册时间
     */
    private String registerTime;

    /**
     * 会员等级
     */
    private Integer level;

    /**
     * 会员等级名称
     */
    private String levelTag;

    /**
     * 会员状态 1-冻结 2-正常
     */
    private Integer status;

    /**
     * 会员状态名称
     */
    private String statusName;

    /**
     * 外部状态
     */
    private Integer outerStatus;

    /**
     * 外部状态名称
     */
    private String outerStatusName;

    /**
     * 内部状态
     */
    private Integer innerStatus;

    /**
     * 内部状态名称
     */
    private String innerStatusName;

    /**
     * 国家代码Id
     */
    private Long countryCodeId;

    /**
     * 手机号码
     */
    private String phone;

    /**
     * 注册邮箱
     */
    private String email;

    /**
     * 上级会员关系Id
     */
    private Long upperRelationId;

    /**
     * 会员注册资料，Map对象类型
     * Key为获取页面内容接口返回的fieldName，value为用户填写的内容
     */
    private Map<String, Object> detail;

    /**
     * 标识字段，定义在MemberRelationTypeEnum中，0-上级会员是平台 1-上级会员不是平台
     */
    private Integer relType;

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public Long getValidateId() {
        return validateId;
    }

    public void setValidateId(Long validateId) {
        this.validateId = validateId;
    }

    public Long getRoleId() {
        return roleId;
    }

    public void setRoleId(Long roleId) {
        this.roleId = roleId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMemberTypeName() {
        return memberTypeName;
    }

    public void setMemberTypeName(String memberTypeName) {
        this.memberTypeName = memberTypeName;
    }

    public String getRoleName() {
        return roleName;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }

    public Integer getSource() {
        return source;
    }

    public void setSource(Integer source) {
        this.source = source;
    }

    public String getSourceName() {
        return sourceName;
    }

    public void setSourceName(String sourceName) {
        this.sourceName = sourceName;
    }

    public String getRegisterTime() {
        return registerTime;
    }

    public void setRegisterTime(String registerTime) {
        this.registerTime = registerTime;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public String getLevelTag() {
        return levelTag;
    }

    public void setLevelTag(String levelTag) {
        this.levelTag = levelTag;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getStatusName() {
        return statusName;
    }

    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }

    public Integer getOuterStatus() {
        return outerStatus;
    }

    public void setOuterStatus(Integer outerStatus) {
        this.outerStatus = outerStatus;
    }

    public String getOuterStatusName() {
        return outerStatusName;
    }

    public void setOuterStatusName(String outerStatusName) {
        this.outerStatusName = outerStatusName;
    }

    public Integer getInnerStatus() {
        return innerStatus;
    }

    public void setInnerStatus(Integer innerStatus) {
        this.innerStatus = innerStatus;
    }

    public String getInnerStatusName() {
        return innerStatusName;
    }

    public void setInnerStatusName(String innerStatusName) {
        this.innerStatusName = innerStatusName;
    }
}
